import logging




# create logger
# 第一步，创建一个logger
logger = logging.getLogger('bridge')
logger.setLevel(logging.INFO)
logger.propagate = False  # 禁止传播到根日志器

# 第二步，创建一个handler，用于写入日志文件
logfile = './log/bridge_log.log'
fh = logging.FileHandler(logfile, mode='a')  # open的打开模式这里可以进行参考
fh.setLevel(logging.DEBUG)

# create console handler and set level to debug
# 第三步，再创建一个handler，用于输出到控制台
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)

# create formatter
# 第四步，定义handler的输出格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# add formatter to ch
ch.setFormatter(formatter)
fh.setFormatter(formatter)

# add ch to logger
# 第五步，将logger添加到handler里面
logger.addHandler(ch)
logger.addHandler(fh)

# 'application' code
# 日志函数
def log_message(message, *args):
    logger.info(message, *args)

def log_error(msg, *args):
    logger.error(msg, *args)
    # logger.info(f"\nLogger 'bridge' 的 Handler 数量: {len(logger.handlers)}")
    # logger.info(f"\nRoot Logger 的 Handler 数量: {len(logging.root.handlers)}")


if __name__ == "__main__":
    data={
                "a":1,
                "b":2
            }
    log_message("\n测试下打印log:%s", data)

    log_error('\nlogger数量测试')

    # print(f"Logger 'bridge' 的 Handler 数量: {len(logger.handlers)}")
    # print(f"Root Logger 的 Handler 数量: {len(logging.root.handlers)}")

    # log_error(Exception("open test"),1)